#ifndef _AVGDL_COMMANDS_H_
#define _AVGDL_COMMANDS_H_

// Defines all the available commands in the abstract language
extern const struct avgdl_command_prototype {
	char *name;
	int args;
} avgdl_command_list[];

// Number of commands (for iteration)
extern const int avgdl_command_list_size;

// Struct that holds the data of an actual command
struct avgdl_command {

	char *name;
	char **arg;

};

/* Data type:
 * RAW : char*
 * NATIVE : char**
 * 	[0] : key
 * 	[1] : Content
 */
enum DATA_TYPE {
	RAW,
	NATIVE,
};

// Return data
struct avgdl_return {
	enum DATA_TYPE type;
	void *data;
};


struct avgdl_return *get_native_code(struct avgdl_command *cmd);

#endif
